home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / programs / ckot20.zip / CKOT20.TXT < prev    next >
Text File  |  1993-02-24  |  37KB  |  679 lines

  1.      
  2.                                     CheckOut                                    CheckOut
  3.                       Copyright(c) 1989-93 Saturn Software                      Copyright(c) 1989-93 Saturn Software                      //////////// /////// ////// ////////
  4.                                   & John Bintz                                  & John Bintz                                  / //// /////
  5.                                   1519 Redwood                                  1519 Redwood                                  //// ///////
  6.                                 Davis, CA  95616                                Davis, CA  95616                                ////// //  /////
  7.      
  8.      
  9.      Results from Validate
  10.      
  11.                File Name:  checkout.exe
  12.                     Size:  67,856
  13.                     Date:  2-22-1993
  14.      File Authentication:
  15.           Check Method 1 - 4F7E
  16.           Check Method 2 - 004F
  17.      
  18.         CheckOut is a virus protection program which is intended for use in
  19.      environments in which many program reside in archives  such as  ZIP or
  20.      LZH.  It  breaks  open  each  archive  and  calls  ViruScan  by McAfee
  21.      Associates to check the components for viral problems. If  desired, it
  22.      can then repackage  the archive  in a  different format  (e.g. convert
  23.      .zip to .arj). Both the filelists of opus/fido systems  (files.bbs) as
  24.      well as PCBoard systems (DIRN, DIRNG) are converted in the process. It
  25.      will  also  work  on  a  much  simpler  level  where  the user  has an
  26.      occasional file to be scanned or re-archived.
  27.      
  28.      FEATURES:
  29.      -         Handles nested files to any level.
  30.      -         Desqview compatibility
  31.      -         Optionally moves infected files or bad archives out of the way.
  32.      -         Each file process is logged and identified  as ok  or bad  in some
  33.                sense.
  34.      -         Control  is  passed  to  named batch  files at  two times  so that
  35.                comments can  be added  to the  rearchived file,  or files  can be
  36.                added to the package, etc.
  37.      -         Sensitive to read-only files.
  38.      -         Processed files can  be identified  so the  same directory  can be
  39.                processed each night and only the new files treated.
  40.      -         Single files can be specified for scanning, conversion or both.
  41.      -         Can be operated either in an interactive mode  with menus  or from
  42.                the command line, or batch
  43.      -         Menu mode can be used to write a batch file for subsequent use.
  44.      -         Can be stopped anytime and pick up where it left off.
  45.      -         Handles Opus and Fido files.bbs automatically
  46.      -         Handles PCBoard DIRn and DIRng files automatically.
  47.      -         Moves good files along a specified path
  48.      -         Pathnames are maintained on archievers that handle pathnames.
  49.      
  50.         The quality of the program  as well  as the  feature set,  has been
  51.      enhanced  considerably  by the  beta testers  who did  everything that
  52.      could be expected and more. These include: Patricia M. Hoffman, 204/869,
  53.      Robert Michal, 386/451, and John Alton, 141/250.
  54.      
  55.         Special thanks are due to Patricia Hoffman who independently tested
  56.      CheckOut  with  live  strains  of  Jerusalem-B,  AIDS,  Alabama,  Dark
  57.      Avenger,  MIX!/Saratoga,  Zero-Bug,  2930 (Traceback),  Yankee Doodle,
  58.      3551/Syslock, and DataCrime II.
  59.      
  60.      LIMIT OF LIABILITY
  61.         CheckOut is distributed as is.  The author makes  no representation
  62.      with respect to the fitness of the software for any particular purpose
  63.      and disclaims all warranties, expressed  or implied.  The  author will
  64.      assume no liability for  damages either  from the  direct use  of this
  65.      product or as a consequence of the use of this software.
  66.      
  67.      SUPPORT
  68.         There is  no staff  employed for  support purposes.  If you  have a
  69.      problem  to  report  or features  you would  like to  see implemented,
  70.      use the comment field on the registration  form. All suggestions  will
  71.      be evaluated for the next version.
  72.      
  73.      SHAREWARE
  74.         CheckOut is distributed as shareware. This  means you  can evaluate
  75.      the product before  you decide  to register  it. If  you are  using it
  76.      after a couple of weeks, you should register it. You can copy CheckOut
  77.      or any shareware program and distributed to anyone else, provided that
  78.      neither the program nor the documentation is altered  and that  you do
  79.      not charge a fee. Because  there is  no advertising,  distribution, or
  80.      packaging cost, the price of a shareware program is often less than an
  81.      equivalent package sold through retail channels.
  82.         The registration form is provided in a separate file.
  83.      
  84.      
  85.                                   INTRODUCTION                                  INTRODUCTION                                  ////////////
  86.      
  87.         ViruScan or  SCAN has  become one  of the  most popular  methods of
  88.      checking for various types of viruses. It will  check boot  sector and
  89.      each file potentially a virus carrier  on a  disk for  the identifying
  90.      characteristics of hundreds of different virus types.  For most users,
  91.      this is exactly what is needed. However, for people that operate a BBS
  92.      or  make  extensive  use of  BBS files,  most executable  files reside
  93.      within compressed or archived files  and these  can't be  processed by
  94.      SCAN.
  95.      
  96.         CheckOut  makes  it  possible for  SCAN to  check the  files within
  97.      archives. It operates by stepping through each file in a subdirectory,
  98.      looking at the extension, spawning  the appropriate  unarchive program
  99.      (I.e. LHARC, PAK,  PKUNZIP, ZOO,  PKUNPAK) and  then spawning  SCAN to
  100.      test each of the components of the archived file.
  101.      
  102.         As CheckOut decompresses files and checks the components  for viri,
  103.      a log is  being written  stating that  the file  has been  checked and
  104.      whether or  not it  is found  to be  infected. Additionally,  the file
  105.      itself can be marked as  having been  checked. If  there is  a problem
  106.      with the integrity of the archive, that fact is also noted in the log.
  107.      
  108.         CheckOut will cause each EXE, COM, OVL, BIN, PIF,  and SYS  file as
  109.      well as  each  ARC, PAK,  ZIP,  LZH,  ZOO,  SDN, ARJ, in the specified
  110.      subdirectory to be scanned. The files which are not  processed include
  111.      those with a different extension than those noted above. Most of these
  112.      will be data files, and since they are not executed, they can't do any
  113.      harm. However,  self-extracting archives  are potentially  harmful and
  114.      are missed by both SCAN and the current version of  CheckOut. CheckOut
  115.      sees the "EXE" and thinks SCAN will check  it and  SCAN thinks  it did
  116.      check (it did,  but for  the wrong  strings). The  code exists  now to
  117.      process self-extracting archives, but was not included in this version
  118.      because it can be outwitted fairly easily. It may be more  muscular by
  119.      the time the next version is released.
  120.      
  121.      
  122.      SETUP:
  123.      
  124.         Each program that is to be  used must  be located  on the  path. No
  125.      check is made, so if you don't use a compression type, you  don't need
  126.      the uncompressor. In the case of SCAN, a  check is  first made  of the
  127.      directory that CheckOut was executed from. If  SCAN is  located there,
  128.      that one is  used in  preference to  a version  somewhere else  on the
  129.      path. The filenames that CheckOut might look for include:
  130.      
  131.      LHA.EXE
  132.      PKUNZIP.EXE
  133.      PKZIP.EXE
  134.      ZOO.EXE
  135.      PKUNPAK.EXE
  136.      PKPAK.EXE
  137.      PAK.EXE
  138.      SCAN.EXE
  139.      ARJ.EXE
  140.      
  141.         These programs must exist on the path if they are to be  used. They
  142.      can not be renamed, and they must be recent enough to handle the files
  143.      which  will  be  processed.  The  version  of SCAN  must be  9.1V97 or
  144.      greater (SCANV97) because  CheckOut uses  features introduced  in that
  145.      version. Attempts to use an earlier version will cause SCAN to display
  146.      a help screen rather than actually scanning.
  147.      
  148.      
  149.                                    OPERATION:                                   OPERATION:                                   //////////
  150.      
  151.      A. Command Line Operation:
  152.  
  153.         CheckOut  can be  operated from  the command  line, from  a menuing
  154.      system, or from a batch file. Command line  operation is  intended for
  155.      simple tasks like scanning  or converting  a single  file or  group of
  156.      files.
  157.      
  158.         You can specify a single file for  scanning, or  group of  files in
  159.      the  current  subdirectory,  just  by naming  it. If  the files  to be
  160.      processed reside in a different directory, you  must specify  the path
  161.      to be scanned with a -s command.
  162.      
  163.      
  164.      CheckOut foo.arc               Scan foo
  165.      CheckOut foo.arc -rz -v        Put foo into a zip archive
  166.      CheckOut *.*                   Scan all files in current subdirectory
  167.      CheckOut -sx:\test\*.zip       Scan all zip files on path
  168.      
  169.         The parameters are defined below. For more  complicated situations,
  170.      it is suggested that you invoke CheckOut with no parameters. That will
  171.      put you into a menuing system.
  172.      
  173.      
  174.      B. Operation from Menu:
  175.      
  176.         If you invoke CheckOut with no parameters, the following  menu will
  177.      appear.  Within the  menuing system  there are  error checks  that are
  178.      resistant to  mistakes and  from the  menuing system  you can  write a
  179.      batch file for subsequent unattended use.
  180.      
  181.          Subdirectory to process       -s                                        K:\UPLOADS
  182.          Logging active                -L                                        yes
  183.          Log subdirectory              -o                                        K:\
  184.          Bad Files subdirectory        -B                                        K:\BADFILES
  185.            Move bad Archives           -A                                        yes
  186.            Move Infected files         -I                                        yes
  187.          Re-archive files              -R                                        no
  188.          Use Time stamp code           -T                                        ::
  189.          PCB DIRnn Files               -P                                        no
  190.          ViruScan active               -V                                        yes
  191.          Move Good files               -G
  192.          Write Batch File               W
  193.          Do It now                      D
  194.      
  195.         The Options are explain below. The command  beside the  menu option
  196.      is the command to be used (and preceded with either "/"  or "-")  in a
  197.      batch file.  That letter  will be  displayed in  a different  color or
  198.      otherwise enhanced on the screen display for most monitor types.
  199.      
  200.         The screen you  see may  look different  as a  result of  where you
  201.      execute  the  program.  The  default subdirectory  to process  is your
  202.      location  at  execution.  The  default  log  directory   and  badfiles
  203.      directory are off the root of the drive (physical or logical) that you
  204.      start from.
  205.      
  206.      
  207.      Subdirectory to process    -s<path>[filemask]     Subdirectory to process    -s<path>[filemask]
  208.      
  209.         This entry specifies the  subdirectory and  files to  be processed.
  210.      The default is *.* in the  subdirectory you  specify, and  the current
  211.      subdirectory  if you  don't specify  any. However,  you can  include a
  212.      filemask identical to those used in DOS to select a smaller  subset of
  213.      files. For example that mask can be a filename, *.arc, etc.
  214.      
  215.         Unless you specify differently, each file (EXE, COM, OVL, BIN, PIF,
  216.      SYS, ARC, PAK, ZIP, LZH, ZOO, SDN) in the subdirectory  specified will
  217.      be processed. SDN files are treated as the equivalent of PAK files
  218.      
  219.      
  220.      Logging active       Logging active            -L                                -L
  221.      Log subdirectory     Log subdirectory          -o<path>                                -o<path>
  222.      
  223.         By default, CheckOut.LOG is left in the root directory of  the boot
  224.      drive and looks as shown  below.  Each compressed  file is  given just
  225.      one log entry. If, for example, A.LZH had  three executable  files and
  226.      four  embedded  archives,  it  would have  just one  log entry  and an
  227.      "infection message" would apply to any or all three files.
  228.      
  229.           --testing D:\FILE\UP--------10/07/89
  230.           ABCDEFGH.LZH                         ok 10/07/89
  231.           A.LZH                         Virus detected
  232.           B.PAK                         Missing files on path
  233.           C.ZIP                         Problem in Archive
  234.           D.ZOO                         DOS Error
  235.           E.ARC                         ok 10/07/89
  236.      
  237.         The  command  -L in  a batch  file stops  logging and  the -O<PATH>
  238.      command provides a new path. On the menus,  just hitting  the carriage
  239.      return will toggle the L-variable from yes to no.
  240.      
  241.      
  242.      Bad Files subdirectory     Bad Files subdirectory                                -B<path>                                -B<path>
  243.        Move bad Archives       Move bad Archives                                -A                                -A
  244.        Move Infected files       Move Infected files                                -I                                -I
  245.      
  246.         If a badfile is found,  a subdirectory  called badfiles  is created
  247.      and all infected files (as well  as bad  archive files)  are relocated
  248.      there. A note is also made in the log, of course. At any time, you can
  249.      get  rid  of  both  the  file  and  the subdirectory  but there  is no
  250.      possibility of it causing a problem just sitting there.
  251.      
  252.         Another path is specified by the -B<path>  command.  The -A  and -I
  253.      are yes/no switches.
  254.      
  255.      
  256.      Re-archive files    -RL, -RZ, -RA, -RP, -RO, -RJ
  257.      
  258.         If the archives are to be converted to something else,  this switch
  259.      is used to specify the target format as follows:
  260.      
  261.      -RL    convert all files to Lharc
  262.      -RZ    convert all files to Zip
  263.      -RA    convert all files to Arc
  264.      -RP    convert all files to Pak
  265.      -RO    convert all files to Zoo
  266.      -RJ    convert all files to Arj
  267.      
  268.         If you specify the -r switch, CheckOut will re-archive all files in
  269.      the specified  format. Even  if all  files are  already in  the target
  270.      format, there are some advantages to  rearchiving. The  advantages are
  271.      all the files are put in the same archive format,  you make  sure that
  272.      nested archives are consistent, that is that there are no  "arc" files
  273.      buried within a "zip" package; all  comments advertising  other boards
  274.      are eliminated; all files are maximally compressed; your  own comments
  275.      can be added without  negating the  advantages of  the time  stamp and
  276.      there are a number of operations that you can perform automatically as
  277.      discussed below.
  278.      
  279.         Nesting is performed as deep as you will want  to go.  All archives
  280.      within  archives  will  be  converted to  the format  specified. Since
  281.      CheckOut processes each  level of  nesting by  going one  level deeper
  282.      with subdirectories, the theoretical level  is the  length of  the DOS
  283.      command line  (120 characters)  which would  allow for  something more
  284.      than 20 levels. It hasn't been tested that  deeply, however,  so there
  285.      might be some other DOS limitation which I am not aware of.
  286.      
  287.         During conversion, a running total of starting size and finish size
  288.      is kept which is printed to both the screen and to CheckOut.log. These
  289.      totals should be accurate regardless of whether the conversion process
  290.      is completed or you exit prematurely with ^x.
  291.      
  292.      Use Time stamp code        -T<time>
  293.      
  294.         This is a very useful switch although its usefulness is not readily
  295.      apparent. If you were to set the  switch "-T5:55",  the time  stamp of
  296.      all files would be changed to 5:55 as they are processed. Then  if you
  297.      were to execute the program upon the same subdirectory the second time
  298.      using the same switch, any file which had a time  stamp of  5:55 would
  299.      be consider completed and would not be processed the second time while
  300.      all other files would be processed.  You must  use a  legitimate time;
  301.      if you were to enter with 6:66, the process would not work.
  302.      
  303.         Using  this  technique,  you  can  have  CheckOut process  the same
  304.      subdirectory every night and process only the new files  received that
  305.      day.
  306.      
  307.         There are some disadvantages  in using  this technique  for marking
  308.      files. Obviously, a file might just happen to be  time stamped  at the
  309.      specified time and get bypassed. Obviously the time stamping  can't be
  310.      used for anything else, if you use it for this purpose. However, it is
  311.      not often used for any other purpose.
  312.      
  313.         Although not well known,  DOS will  time stamp  a file  by 2-second
  314.      intervals  as  well  as  by  hours  and minutes.  The seconds  are not
  315.      displayed with a "dir" command.  Consequently, if you ignore the hours
  316.      and minutes and check only the seconds, the time stamp of the  file is
  317.      not altered in any visible way. You can  do that  with the  command "-
  318.      T::ss" e.g. "-T::20". Since ss is really  2-sec intervals  (instead of
  319.      seconds), it can be no larger than 30. Additionally, it should  not be
  320.      0 as this is the most common stamp.
  321.      
  322.         In the menu, you can specify  hours, minutes,  and seconds.  If you
  323.      want CheckOut to ignore, for example, hours and minutes, you can enter
  324.      the character ":",  or just  hit the  carriage return  and it  will be
  325.      automatically entered.
  326.      
  327.      
  328.      PCB DIRnn Files            -P<path/DIRn>
  329.      
  330.      for OPUS and Fido Systems     for OPUS and Fido Systems
  331.      
  332.         Most BBS systems maintain  an independent  list of  files. Whenever
  333.      files  are  rearchived,  the filename  on that  list must  be changed.
  334.      Finding that list is easy in the case of Opus and Fido systems.  It is
  335.      always called files.bbs and it is always located in the same directory
  336.      as the files. If you convert archive types and there is a  file called
  337.      files.bbs,  the  filenames  on that  list will  be changed  (e.g. from
  338.      foo.arc to foo.zip) automatically.
  339.      
  340.      PCBoard BBS     PCBoard BBS
  341.      
  342.         In the case of PCBoard, you must specify the path and  the filelist
  343.      to be changed since there is no way for CheckOut  to know  either. You
  344.      should specify just the DIRn name.  Given a  DIRn name,  CheckOut will
  345.      look for a DIRng file and if it is there, it will change  the filename
  346.      there as well.
  347.      
  348.         Perhaps, the filelists of other BBS systems  can be  processed with
  349.      this  method. It  doesn't make  any difference  where the  filename is
  350.      located within the line. However, it will not work on those systems on
  351.      which the file stem and the file extension are separated by spaces.
  352.      
  353.      VirusScan active           -V
  354.      
  355.         CheckOut calls SCAN automatically after all  of the  components are
  356.      unarchived.  If  you  simply  want  to change  archive types,  you can
  357.      eliminate scanning with the -v switch. If SCAN is called, it is called
  358.      in the default mode (with memory checking) on  the first  file checked
  359.      and without memory checking on subsequent files. If time is important,
  360.      for example when an  upload is  checked with  a caller  online, memory
  361.      checking can be turned off in the batch mode with the -m switch.
  362.      
  363.      Move Good files            -G<path> (-J<path>)
  364.      
  365.         If  you  select  the  -G  option,  only  the  files that  have been
  366.      identified as good will be moved along a  path. At  the same  time the
  367.      physical file is move, the file  description in  the files.bbs  of the
  368.      source  subdirectory  is  moved  to   files.bbs  of   the  destination
  369.      subdirectory. The working model supported by this option is  one where
  370.      you don't allow  immediate access  to uploaded  files until  they have
  371.      been tested. After testing, they go to an a  subdirectory that  can be
  372.      accessed by users and subsequently to a categorized subdirectory.
  373.      
  374.         The -J option exactly duplicates the -G option, but it can  only be
  375.      activated from a batch file. It is not expected that many  people will
  376.      use it, but it can be useful for backup purposes.
  377.      
  378.         This version will not handle the four DIRn  files involved  in this
  379.      option. Except for the fact it won't discriminate between good and bad
  380.      files, this operation can sometimes  be implemented  with a  few batch
  381.      commands following the command that runs CheckOut.
  382.      
  383.      
  384.      Write Batch File           W
  385.      
  386.         Selecting this option writes  the parameters  you have  selected to
  387.      disk under the name CKOT.BAT. That batch file  can then  be run  in an
  388.      automatic  procedure.  It is  easier to  specify the  parameters under
  389.      program control and more reliable  as well  as there  are a  number of
  390.      checks for proper format, correctly  specified subdirectories  etc. If
  391.      an unattended batch file has errors, there  is little  that it  can do
  392.      but abort.
  393.      
  394.      
  395.      Do It now                  D
  396.      
  397.         When  you  have  set  all  the parameters,  select this  option and
  398.      CheckOut will do whatever you have specified.
  399.      
  400.         If you have made a mistake  and you  can see  that CheckOut  is not
  401.      doing what you wanted, you can exit with ^x and try again.
  402.      
  403.      
  404.      C. Batch File Procedures
  405.      
  406.         The basic batch file is defined by the menuing  system and  the bat
  407.      file  it  produces  can  be  used in  a nightly  maintenance procedure
  408.      subsequently. There are some additional batch controls as defined here
  409.      (in addition to the -j and the -m command mentioned above).
  410.      
  411.         During the rearchiving process, there are  several points  at which
  412.      you  can  do some  extraneous processing.  To invoke  this processing,
  413.      batch files with specified names must be  located in  the subdirectory
  414.      from which CheckOut is  executed. CheckOut  examines the  filenames in
  415.      its boot directory shortly after  it begins.  If the  filename exists,
  416.      control will be passed to the batch file  at the  appropriate time(s).
  417.      If it does not, CheckOut will continue normally.
  418.      
  419.         These batch files are summarized below.
  420.      
  421.      
  422.      CKOT$1.BAT:
  423.         Subdirectory:         Work directory
  424.         When called:          Just prior to rearchiving
  425.         Parameters passed     None
  426.         Example:              copy c:\myfiles\bbs.ad
  427.      
  428.      CKOT$2.BAT:
  429.         Subdirectory:         Work directory
  430.         When called:          After processing is  complete but  before new
  431.                               file is time stamped.
  432.         Paramaters passed     %1 = filename of file being processed
  433.                               %2 = filename of dirn file
  434.      
  435.      CKOT$3.BAT:
  436.         Subdirectory:         Files directory
  437.         When called:          After processing for each file is complete
  438.         Paramaters passed     %1 = filename of file being processed
  439.                               %2 = filename of dirn file
  440.         Example:              4comment %2 %1 -c
  441.         Remarks:
  442.            In  the  example,  4comment  is  a  program  which  installs the
  443.      description in the  dirn  file  as  a archieve  comment. The  complete
  444.      4comment package is available separately. For the example to work,
  445.      Checkout must be given the name of the dirn file via the -p switch.
  446.      
  447.      CKOT$4.BAT:
  448.         Subdirectory:         Files directory
  449.         When called:          After all processing is complete, just before
  450.                               exit
  451.         Paramaters passed     %1 = path of files directory
  452.                               %2 = filename of dirn file
  453.         Example:              attrib -h %1\descript.ion
  454.                               del %1\*.ion
  455.                               4comment %2 %1\*.* -c -4
  456.         Remarks:
  457.            In this example, 4comment is  called just  once rather  than for
  458.            each file. To illustrate how the arguments can be used, some 4dos
  459.            processing is added.
  460.      
  461.      CKOTSCAN.BAT
  462.         Subdirectory:         Boot directory
  463.         When  called:         At the time of scanning CKOTSCAN, if it exists,
  464.                               is called instead of SCAN. If you are doing
  465.                               something in addition to scanning, you must call
  466.                               SCAN yourself.
  467.         Parameters passed     %1 = The subdirectory which is the root of all
  468.                               subdirectories to be scanned. Any buffer  which
  469.                               receives this parameter must be able to accept a
  470.                               subdirectory may be several levels deep.
  471.         Remarks:
  472.            CheckOut depends upon the error number returned by  SCAN to process
  473.            the log and to process bad files. If you use this  routine, you must
  474.            set the dos error level to zero on success, 1 on an infected  file,
  475.            2 on a dos error.
  476.      
  477.      CKOTARC.BAT
  478.         Subdirectory:         Work directory
  479.         When called:          At the time of archieving each file, CKOTARC,
  480.                               if it exists, is called instead of the archiever.
  481.         Parameters  passed     %1  =  The  filestem  of  the  file   to  be
  482.                                processed.
  483.         Remarks:
  484.            You must set the dos error level to 0 if successful and to >1 if not.
  485.      
  486.      
  487.      CKOTUARC.BAT
  488.         Subdirectory:         Work directory
  489.         When  called:         At  the  time  of  unarchieving  each  file,
  490.                               CKOTUARC, if it exists, is called instead of
  491.                               the unarchiever.
  492.         Parameters passed     %1 = The qualified filename of the file to be
  493.                               processed.
  494.         Remarks:
  495.            You must set the dos error level to 0 if successful and to >1 if not.
  496.      
  497.      
  498.      
  499.      
  500.                               Miscellaneous Notes
  501.      
  502.      When SCAN is called
  503.      
  504.         If you watch the program run, you  will notice  that SCAN  does not
  505.      check  every  archive.  While  this  may  seem  like a  program error,
  506.      CheckOut examines the archive first and asks SCAN  to check  only when
  507.      there is something  to check.  If all  the files  in the  archive were
  508.      *.doc or *.c, there is nothing for SCAN to do so it isn't executed for
  509.      that archive.
  510.      
  511.         The first time SCAN is executed, it checks for all  memory resident
  512.      virus types it knows about.  Subsequently, that  step is  bypassed and
  513.      memory is not checked. If CheckOut is executed  with the  "-m" switch,
  514.      memory is not checked even on the first file. This feature is intended
  515.      for sysops who are testing uploads while the caller is online.
  516.      
  517.      
  518.      Exit prior to completion:
  519.      
  520.         CheckOut can take a long time to complete the task  it is  asked to
  521.      do. If there are 200 files in a subdirectory,  the unarchiver  must be
  522.      called at least 200 times, as must be SCAN and the archiver.  Whenever
  523.      CheckOut is running you can stop it with control x.  It will  not stop
  524.      right  away,  but  rather  it will  finish processing  the file  it is
  525.      working on, cleanup, and  then terminate.  If you  are using  the "-t"
  526.      parameter explained elsewhere, the next time you  execute it,  it will
  527.      start with the file that it left off with. If you are operating from a
  528.      batch command, you can probably terminate  with a  control c,  but you
  529.      may wish you hadn't. Since CheckOut isn't  in control,  you may  get a
  530.      false log entry and  you will  certainly have  a mess  on the  disk to
  531.      clean up.
  532.      
  533.      
  534.      Read only files
  535.      
  536.         Many programs which repackage archive files have trouble  with read
  537.      only files within an archive. It  often happens  that the  stray read-
  538.      only file is left in the work  directory because  it can't  be erased.
  539.      The file then is put into every  archive subsequently  processed. That
  540.      problem  should not  occur with  CheckOut since  the read-only  bit is
  541.      checked, and changed if necessary, before it is erased.
  542.      
  543.      
  544.      DESQVIEW
  545.      
  546.         DesqView  is  checked  for   and  supported   if  it   is  present.
  547.      Consequently, it should stay within its partition relatively  well. On
  548.      a 386 under Desqview, nothing burst through partitions in this version
  549.      (it  did  in  the  last  version  which did  not check  for DesqView).
  550.      CheckOut, with any of the programs specified except for PAK,  will run
  551.      in a 256K partition. If any of your programs are PAKed, you  will need
  552.      a 300K partition. This, of  course, does  not take  into consideration
  553.      anything you might run under an external batch file.
  554.      
  555.      
  556.      LEGAL ASPECTS
  557.      
  558.         Many sysops have not considered their legal exposure caused  by the
  559.      presence of infected files on their board.
  560.      
  561.         If your board is hit with a virus, there  is certainly  a technical
  562.      problem. But if  you've performed  the appropriate  backup operations,
  563.      under the worse set of circumstances,  you probably  can clean  up the
  564.      problem within a week. However, if someone downloads an  infected file
  565.      and chooses to take legal action against  you, that  problem certainly
  566.      won't be cleaned up in a week, and it may involve years.
  567.      
  568.         Of course, the best way to deal with this problem is to prevent it.
  569.      To my knowledge, there is not a better  way to  prevent it  than using
  570.      CheckOut  and SCAN  consistently, automatically,  on all  files before
  571.      they can be downloaded by a user.
  572.      
  573.         If, despite your best efforts, there is an action against  you, you
  574.      have two basic defenses: (1) You didn't do it,  or (2)  You did  do it
  575.      but there are extenuating circumstances.  If the  file in  question is
  576.      not from your board, and every file on your board is stamped as 6 sec.
  577.      past the minute and the file in question is not, that  seems to  me to
  578.      be a strong argument.
  579.      
  580.         If you can't  demonstrate that  the file  came from  elsewhere, you
  581.      must demonstrate "a reasonable standard of care" and that you  did not
  582.      deviate from that standard in this case. It is  intended that  the log
  583.      should provide the documentation to make that claim.  It has  not been
  584.      tested legally and it is not known to be convincing to any court.
  585.      
  586.         You should, on occasion, remove the file CheckOut.LOG and  store it
  587.      off system. Some lawyers would undoubtedly tell you to  store it  in a
  588.      manner that you have no access, so that no one can raise  the question
  589.      of whether or not the data is honest.
  590.      
  591.         Finally,  you  should  bring  the  matter up  with your  lawyer for
  592.      advice. The author of CheckOut claims no  legal expertise  and nothing
  593.      said here should be regarded as legal advice.
  594.      
  595.      
  596.      NOTES on ViruScan
  597.      
  598.         As pointed out earlier, CheckOut will not work at all with versions
  599.      earlier than 9.1V97  or (SCANV97).  However, you  should plan  to keep
  600.      SCAN up to date because new virus  checks are  installed continuously.
  601.      The latest version of SCAN  is always  available on  the HomeBase/CVIA
  602.      BBS  (Computer  Virus  Industry  Association)  at  (408)  988-4004. It
  603.      requires a separate registration and registration fee as  explained in
  604.      the VirusScan documentation.
  605.      
  606.         If,  on  the  initial  pass,  SCAN  finds a  virus in  memory, SCAN
  607.      immediately stops operation and beeps until you  do something.  If you
  608.      should get a warning about a virus  in memory,  you should  POWER DOWN
  609.      and reboot from  a write-protected  floppy disk  and execute  steps to
  610.      remove the virus. The nature  of these  steps is  beyond the  scope of
  611.      this  documentation;  however,  by checking  regularly in  a scheduled
  612.      procedure, you should  never reach  the point  where the  infection is
  613.      already in operation at the time of testing. The simple unarchiving of
  614.      a  file with  the Dark  Avenger virus,  of course,  puts the  virus in
  615.      memory (in a nonoperative state) where it will be detected by SCAN.
  616.      
  617.         The operation of SCAN is fully documented and the  documentation is
  618.      updated with each new version of the program.
  619.      
  620.      Things to go wrong
  621.      
  622.         There aren't at present, any known bugs with CheckOut. There  are a
  623.      variety of circumstances that may produce results that look like bugs.
  624.      
  625.         If PAK is the only thing that fails to operate,  it is  likely that
  626.      you don't have enough memory assigned to the task.
  627.      
  628.         If you are running under DesqView, and SCAN start beeping  with the
  629.      first file, that generally  means that  your partition  environment is
  630.      not intact. That doesn't happen very often and doesn't happen  at all,
  631.      once CheckOut has gotten beyond the first file.
  632.      
  633.         Having two files of the same name in the same directory  will cause
  634.      problems. This can happen, if, for example, you start  with myfile.arc
  635.      and myfile.lzh and  convert them  both to  zip. If  the files  are one
  636.      level, the second myfile.zip will  overwrite the  first. If  there are
  637.      embedded archives, and CheckOut has to leave the subdirectory, it will
  638.      come back, see myfile.zip, and and start processing the next file. The
  639.      bottom line is all files between the two  positions will  be processed
  640.      twice.
  641.      
  642.         If SCAN only shows you a help file, rather than  actually scanning,
  643.      it means that your version of SCAN is too old. You  need to  update to
  644.      1.8V51. It is also possible that the first file is processed correctly
  645.      and the errors start happening on the second pass because  older SCANs
  646.      are not familiar with the commands being fed to  it starting  with the
  647.      second pass.
  648.      
  649.         It should be said that the vast  majority of  files are  handled by
  650.      CheckOut  without  problem.  Approximately  4000 files  were processed
  651.      during testing and only one caused a  problem; that  one being  a file
  652.      called PCWORLD which contained multiple files with identical names and
  653.      different paths. We would  appreciate being  informed should  you find
  654.      any file that is not handled properly.
  655.      
  656.      
  657.      HISTORY
  658.      
  659.      
  660.      2.00     Added ARJ and changed Lharc to LHA.
  661.               Added "-m" switch to call to Scan.
  662.               Added pathnames and nested subdirectories.
  663.               Reworked batch file controllers
  664.      
  665.      1.00     Added the break key, ^x
  666.               Added  re-archiving,  including filelist  handling, passing
  667.               control, etc.
  668.               Added front end interactive processor and batch file writer.
  669.               Added filemasks so that subgroups of files can be selected.
  670.               Added switches -p, -v
  671.               Added capability of handling nested files.
  672.               Added Desqview support.
  673.      
  674.      0.95     Bug fix version. .94 had a  serious problem  processing files
  675.               located at the highest level (A:\ C:\)
  676.      
  677.      0.94     First released version
  678.      
  679.